package cn.iocoder.yudao.module.dify.service.riskreportrecords;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.dify.controller.admin.riskreportrecords.vo.RiskReportRecordsPageReqVO;
import cn.iocoder.yudao.module.dify.controller.admin.riskreportrecords.vo.RiskReportRecordsSaveReqVO;
import cn.iocoder.yudao.module.dify.dal.dataobject.riskreportrecords.RiskReportRecordsDO;
import org.springframework.web.multipart.MultipartFile;

import javax.validation.Valid;
import java.io.IOException;

/**
 * dify风险管理报告任务记录 Service 接口
 *
 * @author 芋道源码
 */
public interface RiskReportRecordsService {

    /**
     * 创建dify风险管理报告任务记录
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createRiskReportRecords(@Valid RiskReportRecordsSaveReqVO createReqVO);

    /**
     * 更新dify风险管理报告任务记录
     *
     * @param updateReqVO 更新信息
     */
    void updateRiskReportRecords(@Valid RiskReportRecordsSaveReqVO updateReqVO);

    /**
     * 删除dify风险管理报告任务记录
     *
     * @param id 编号
     */
    void deleteRiskReportRecords(Long id);

    /**
     * 获得dify风险管理报告任务记录
     *
     * @param id 编号
     * @return dify风险管理报告任务记录
     */
    RiskReportRecordsDO getRiskReportRecords(Long id);

    /**
     * 获得dify风险管理报告任务记录分页
     *
     * @param pageReqVO 分页查询
     * @return dify风险管理报告任务记录分页
     */
    PageResult<RiskReportRecordsDO> getRiskReportRecordsPage(RiskReportRecordsPageReqVO pageReqVO);

    void updateRiskReportStatus(Long recordId, Integer status);

    Long getRiskReportRecordsCount(Long userId);

    Boolean riskManagementReportUploadReviewFile(Long id, MultipartFile file) throws IOException;
}